package cn.edu.wfit.modules.learn.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import cn.edu.wfit.common.core.annotation.Excel;
import cn.edu.wfit.common.core.web.domain.BaseEntity;

/**
 * 案例对象 wfit_case
 * 
 * @author ruoyi
 * @date 2025-07-18
 */
public class WfitCase extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 唯一标识，每个案例的ID */
    private Long id;

    /** 课程ID，关联到stage表的id */
    @Excel(name = "课程ID，关联到stage表的id")
    private Long stageId;

    /** 案例名称 */
    @Excel(name = "案例名称")
    private String caseName;

    /** 案例描述 */
    @Excel(name = "案例描述")
    private String caseDescribe;

    /** 教程地址 */
    @Excel(name = "教程地址")
    private String caseUrl;

    /** 源码仓库地址 */
    @Excel(name = "源码仓库地址")
    private String sourceCode;

    /** 发布状态（0: 未发布, 1: 已发布） */
    @Excel(name = "发布状态", readConverterExp = "0=:,未=发布,,1=:,已=发布")
    private String publishStatus;

    /** 状态（0: 正常, 1: 停用） */
    @Excel(name = "状态", readConverterExp = "0=:,正=常,,1=:,停=用")
    private String status;

    /** 删除标志（0: 存在, 2: 删除） */
    private String delFlag;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setStageId(Long stageId) 
    {
        this.stageId = stageId;
    }

    public Long getStageId() 
    {
        return stageId;
    }
    public void setCaseName(String caseName) 
    {
        this.caseName = caseName;
    }

    public String getCaseName() 
    {
        return caseName;
    }
    public void setCaseDescribe(String caseDescribe) 
    {
        this.caseDescribe = caseDescribe;
    }

    public String getCaseDescribe() 
    {
        return caseDescribe;
    }
    public void setCaseUrl(String caseUrl) 
    {
        this.caseUrl = caseUrl;
    }

    public String getCaseUrl() 
    {
        return caseUrl;
    }
    public void setSourceCode(String sourceCode) 
    {
        this.sourceCode = sourceCode;
    }

    public String getSourceCode() 
    {
        return sourceCode;
    }
    public void setPublishStatus(String publishStatus) 
    {
        this.publishStatus = publishStatus;
    }

    public String getPublishStatus() 
    {
        return publishStatus;
    }
    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("stageId", getStageId())
            .append("caseName", getCaseName())
            .append("caseDescribe", getCaseDescribe())
            .append("caseUrl", getCaseUrl())
            .append("sourceCode", getSourceCode())
            .append("publishStatus", getPublishStatus())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
